package com.sooth.system.menu.table;

import com.dream.system.annotation.Column;
import com.dream.system.annotation.Id;
import com.dream.system.annotation.Table;
import lombok.Data;

import java.sql.Types;

/**
 * @Description: 菜单权限表
 * @Author: Lion Li
 * @Date: 2023-09-13 19:56:41
 */
@Data
@Table("sys_menu")
public class SysMenu {


    /**
     * 菜单ID
     */
    @Id
    @Column(value = "id", jdbcType = Types.BIGINT)
    private Long id;

    /**
     * 菜单名称
     */
    @Column(value = "menu_name", jdbcType = Types.VARCHAR)
    private String menuName;

    /**
     * 父菜单ID
     */
    @Column(value = "parent_id", jdbcType = Types.BIGINT)
    private Long parentId;

    /**
     * 显示顺序
     */
    @Column(value = "order_num", jdbcType = Types.INTEGER)
    private Integer orderNum;

    /**
     * 组件地址
     */
    @Column(value = "component", jdbcType = Types.VARCHAR)
    private String component;

    /**
     * 组件名称
     */
    @Column(value = "component_name", jdbcType = Types.VARCHAR)
    private String componentName;

    /**
     * 访问路径
     */
    @Column(value = "path", jdbcType = Types.VARCHAR)
    private String path;

    /**
     * 路由参数
     */
    @Column(value = "param", jdbcType = Types.VARCHAR)
    private String param;

    /**
     * 组件类型（0路由视图 1路由全屏 2外部链接 3嵌入链接）
     */
    @Column(value = "component_type", jdbcType = Types.INTEGER)
    private Integer componentType;

    /**
     * 是否缓存（0不缓存 1缓存）
     */
    @Column(value = "keep_alive", jdbcType = Types.INTEGER)
    private Integer keepAlive;

    /**
     * 菜单类型（0目录 1菜单 2按钮）
     */
    @Column(value = "menu_type", jdbcType = Types.INTEGER)
    private Integer menuType;

    /**
     * 是否固定标签（0 不固定 1固定）
     */
    @Column(value = "affix", jdbcType = Types.INTEGER)
    private Integer affix;

    /**
     * 显示状态（0显示 1隐藏）
     */
    @Column(value = "hide", jdbcType = Types.INTEGER)
    private Integer hide;

    /**
     * 权限标识
     */
    @Column(value = "perm", jdbcType = Types.VARCHAR)
    private String perm;

    /**
     * 菜单图标
     */
    @Column(value = "icon", jdbcType = Types.VARCHAR)
    private String icon;

    /**
     * 创建者
     */
    @Column(value = "create_by", jdbcType = Types.BIGINT)
    private Long createBy;

    /**
     * 创建时间
     */
    @Column(value = "create_time", jdbcType = Types.TIMESTAMP)
    private java.util.Date createTime;

    /**
     * 更新者
     */
    @Column(value = "update_by", jdbcType = Types.BIGINT)
    private Long updateBy;

    /**
     * 更新时间
     */
    @Column(value = "update_time", jdbcType = Types.TIMESTAMP)
    private java.util.Date updateTime;
}
